package damas.modelo;

import java.util.LinkedList;

import damas.gui.DamasGui;
import utils.Pair;

public class DamasModeloImplementacion extends DamasModelo
{

    public DamasModeloImplementacion(DamasEstado estado, DamasGui gui)
    {
        super(estado, gui);
        obtenerEstado().reset();
    }

    @Override
    public boolean mover(Pair<Integer, Integer> inicio, Pair<Integer, Integer> destino)
    {
        return obtenerEstado().mover(inicio, destino);
    }

    public LinkedList<Pair<Integer, Integer>> puedeComerDesde(int color)
    {
        return obtenerEstado().puedeComerDesde(color);
    }

    public int fichaEn(int fila, int columna)
    {
        return obtenerEstado().fichaEn(fila, columna);
    }

    public int fichaEn(Pair<Integer, Integer> pos)
    {
        return fichaEn(pos.getFirstElem(), pos.getSecondElem());
    }

    public Pair<Integer, Integer> posicionPostComida(Pair<Integer, Integer> pos)
    {
        return obtenerEstado().posicionPostComida(pos);
    }

    public boolean esDama(Pair<Integer, Integer> pos)
    {
        return obtenerEstado().esDama(pos);
    }

    /**
     * cuantas fichas del rival comio el jugador que tiene sus fichas de color: color
     */
    public int fichasComidas(int color)
    {
        return obtenerEstado().fichasComidas(color);
    }

    public boolean vacio(Pair<Integer, Integer> pos)
    {
        return obtenerEstado().vacio(pos);
    }

    public void reset()
    {
        obtenerEstado().reset();
    }
}
